home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DS-CD ROM 2 1993 August
/
DS CD-ROM 2.Ausgabe (August 1993).iso
/
programm
/
ds0256
/
mdebug22.exe
/
_T&T_.DOC
next >
Wrap
Text File
|
1992-11-21
|
5KB
|
148 lines
Tips & Tricks für die Benutzung von MDEBUG
──────────────────────────────────────────
■ Falls Sie MDEBUG oder einen der Treiber MDHISDRV oder MDDISDRV in
einen UMB laden wollen, sollten Sie auf jeden Fall den Parameter
LOADH (bzw. /H1 für die Treiber) dem DOS-Befehl LH vorziehen.
Grund:
Im Gegensatz zum Hochladen über die Parameter benötigt der DOS-
Befehl mehr freien Speicherplatz im UMB (für den transienten Teil,
den residenten Teil und das Environment). Da beim DOS-Befehl LH
zudem das Environment ebenfalls in den UMB geladen wird (und zwar
vor das eigentliche Programm), dieses aber von MDEBUG und den
Treibern sowieso wieder freigegeben wird, erhalten Sie in diesem
Fall zusätzliche unbelegte Löcher im UMB.
Zum Hochladen von MDEBUG und den Treibern durch diese selbst, wird
nur soviel freier Speicherplatz im UMB benötigt wie der residente
Teil von MDEBUG bzw. den Treibern belegt.
■ Falls in den Popup-Windows von MDEBUG kein Cursor erscheint,
müssen Sie den Parameter 'CoC' verwenden:
MDEBUG SET CoC=n1,n2
('n1' = Cursor-Attribut für den Insert-Modus, 'n2' = Cursor-Attribut
für den Overwrite-Modus)
■ Falls Sie die Windows von MDEBUG auf einen zweiten Bildschirm
umgeleitet haben (über den Parameter 'TEXT') und ein Popup von
MDEBUG nicht möglich ist, sobald der Original-Graphikadapter
im Graphik-Modus ist, geben Sie den Parameter 'TEXT' in der
vollständigen Form an:
MDEBUG SET TEXT=nnnn,0
('nnnn' ist das Segment des Bildschirmspeichers des zweiten
Bildschirms)
■ Falls Ihnen die Voreinstellungen für die Farben von MDEBUG nicht
zusagen, können Sie diese auch schon in der Shareware-Version
ändern:
(1) Installieren Sie MDEBUG und rufen Sie MDEBUG über den Hotkey auf.
Führen Sie dann folgenden Befehl im Interpreter aus:
MOV AX,P3 ^ MOV BX,P4
Notieren Sie sich nun die Werte aus den Registern AX und BX.
(3) Verlassen Sie MDEBUG.
(4) Entfernen Sie MDEBUG mit dem Parameter 'EXIT' aus den Speicher.
(5) Laden Sie den DOS-Debugger DEBUG.COM und führen Sie dort folgende
Befehle aus:
nMDEBUG.COM
l
e p3_offs
n1 n2
e p4_offs
n3 n4
w
q
Hinweis: Hierbei ist p3_offs der Wert aus dem Register AX und
p4_offs ist der Wert aus dem Register BX (Schritt 1).
n1 ist die neue Farbe für den Interpreter, n2 ist die
neue Farbe für den Monitor, n3 ist das neue Attribut
für den Cursor im Insert-Modus und n4 ist das neue
Attribut für den Cursor im Overwrite-Modus.
■ Für eine Color-Graphik-Karte können Sie z.B. folgende Farben
benutzen:
MDEBUG CoM=74 CoD=71 CoH1=31 CoH2=3Eh CoH3=1B CoC=9E,CE
und
MDDISDRV /F1,4E /F2,4B /F3,71
■ Verschiedene Programme (vor allem Spiele) verändern das Statusbyte
für die Umschalt-Tasten der Tastatur, so daß nach dem Beenden des
Programms z.B. der Status der Tasten CAPSLOCK oder NUMLOCK dort
falsch eingetragen ist.
Diesen Fehler können Sie über MDEBUG folgendermaßen beheben:
(1) Schalten Sie NUMLOCK und CAPSLOCK aus
(2) Rufen Sie MDEBUG über den Hotkey aus und führen folgenden
Befehl aus:
MOV 040:*[017],0
Dadurch werden im Statusbyte für die Tastatur alle Bits gelöscht
(->> NUMLOCK, CAPSLOCK, INSERT und SCROLLLOCK sind jeweils aus-
geschaltet.)
■ Zum Ermitteln der Tastaturcodes mehrerer Tasten bietet sich folgende
Befehlszeile an:
M AH,00 ^ I 16 ^ ¿H AL=1B @ Taste drücken, AX = Tastencode (ESC = Ende)
oder
M AH,10 ^ I 16 ^ ¿H AL=1B @ Taste drücken, AX = Tastencode (ESC = Ende)
■ Zum Disassemblieren eines Programms mit dem Disassembler MDDISDRV muß
dieses vorher über einen normalen Debugger, z.B. DEBUG.COM, geladen
werden.
■ In dem als Adresse, für die eine Code-Referenz gesucht wird, die
aktuelle Adresse einer Interrupt-Routine angegeben wird, können mit
dieser Funktion des Disassemblers auch Interrupt-Aufrufe gesucht
werden:
Beispiel:
Suche nach einer Code-Referenz für den Interrupt 21h
(1) Über die Tastenfolge 'I21' den Disassembler zur Anzeige des
Codes des Interrupt 21h veranlassen.
(2) Über die Taste <Insert> die Adresse der Interrupt-Routine auf
den Adressen-Stack pushen.
(3) Über die Taste <0> zurück zur alten Startadresse springen
(4) Über die Taste <F8> die Suche nach der Code-Referenz starten.
Die Adresse, die gesucht werden muß, steht jetzt als oberste
Adresse auf dem Adressen-Stack.
Beachten Sie aber, daß Sie die aktuelle Adresse des zu suchenden
Interrupts immer neu ermitteln müssen, falls sich diese ändert.